package com.hill.study;

public class PolymopicTest {
    public static void main(String[] args) {
        Dog d1= new Dog();
        Animal d2 = new Dog();
        Object d3 = new Dog();


        d1.run();
        d2.run();//子类重写了父类的方法，调用子类的。
      //  d2.eat();  --不能调用子类独有的方法
        d1.eat();

        System.out.println(d3 instanceof Dog);
        System.out.println(d3 instanceof Animal);
        System.out.println(d3 instanceof Object);
        System.out.println(d3 instanceof Cat);
        System.out.println(d3 instanceof String);
        new PolymopicTest().testDevide(10,0); //类下的调用独立方法模式

        try{//try监控区域
            System.out.println(8/0);}
            catch (ArithmeticException e){
                System.out.println("程序异常，除数不能为0");
            }finally {
            System.out.println("finally下的都执行，善后");
        }
    }
    //假色这个方法处理不了异常，方法往上抛出异常
    public int testDevide(int a, int b) throws ArithmeticException{
        if(b==0){
            throw new ArithmeticException(); //方法中主动抛出异常
        }else {
            return   a/b ;
        }
    }
}
